React2ShellによるReact Server Components批判に対しての反応は誠実に取り扱った方が良いと感じている
React2ShellによってReact Server Componentsの存在・設計としての危険性からReact採用を見送りたいという意見があるらしい
が、yamanoku.iconはこれを明確に見かけていないので仮想敵なだけの可能性はある
React Server Componentsの設計自体が怪しいものだったということでそれ自体を恐れることは良いが手放しでReact全体をサゲをするのは違うことだとは感じている
React Server Components自体の採用は控えつつ、ReactをUIライブラリとして使うという点においては問題ないはず
Next.jsにおけるApp Routerを今後どう扱っていくか・向き合っていくかが焦点とも言える
Page Routerは非推奨にするとはいいづらいのではないだろうか…
React Server Components対応フレームワーク(Wakuなど)も本件の脆弱性反映に苦心されたのをみかけたので付き合い方も見直す必要はありそう
SPAだと大丈夫なのか?とかSSGだと安心なのか?みたいなことの表明は必要
だけどそのサゲに対して煽るような反応をするのもまた違うことだと感じている
例えば以下のような感じの反応
@t6adev: え、この一件でReact使うのやめるとか言う人いるの?
すごいね、その基準でやめるとなるとコンピュータ使えなくなるね。
これは極端な一般化と言える
個人や組織が「Reactをやめる」と言う判断は、単なる感情的反応ではなくリスク許容度・運用形態・代替コストに基づく場合がある
これを「コンピュータ全般を否定する」と短絡的に結びつけるのは不当なものに見える
そして何よりReact Tokyoの運営メンバーがこのような対応をすることは、Reactの利用者やReactそのものに対する不誠実な対応ではないかと感じる
@igz0: 今回の脆弱性発見の件でReactやNext.jsをDisってる人、火事に便乗している愉快犯だから、まともな技術者は相手にしないほうがいいですよ。
MetaのBug Bounty プログラムでの脆弱性報告から、わずか4日で対応されたのはむしろReactのエコシステムの健全性が証明された一件でもある。
火事に便乗している愉快犯
これも誠実な批判を適当な批判や愉快犯と一緒くたにしてしまっているように見える
4日で対応されたのはむしろReactのエコシステムの健全性が証明
ここも論理的飛躍していそう
まず何の対応をもってして全体での健全性があるのかを定義していない
今回はCVSSスコアレベルから見て4日も対応がかかっていたという点においては安心できるものとはいえない
エコシステムの健全性でいうとNext.jsの対応に懸念があることをみると果たして健全なのだろうか?と感じる
@bulkneets: Next.js の脆弱性 CVE-2024-46982 の発見者による解説が公開されているので注意喚起を書きます。Next.jsから発表されているアドバイザリは不正確なものです。
https://github.com/vercel/next.js/security/advisories/GHSA-gp8f-8m3g-qvj9
特にConfidentiality:Noneと評価している点は誤りで、典型的に情報漏洩やXSS脆弱性を引き起こします。
@tyage: 2年近く前からNext.jsに報告してたやつのCVE出たらしい https://github.com/vercel/next.js/security/advisories/GHSA-7gfc-8cq8-jh5f
@stin_factory: React Server Components が安全とは限らないが、そんなのフレームワーク全部そうだし
そんなのフレームワーク全部そうだし
これも極端な一般化
それはそうかもしれないが、そういうことで一緒くたにしてしまうのは、セキュリティへの対応をしているフレームワークを下げることになる
今回のReact2Shellが起きてしまった以上React Server Componentsと我々はどう向き合うかについてを話し合うことや考えていくことを建設的にやっていくのがフロントエンド開発者にとっての矜持であり必要なことなのではないだろうか
不安を声に出すなということではないです。むしろ言うべき
それは直接Reactエコシステム側にフィードバックすべき
その不安をどう解消していけばいいかをみんなで考えていきましょう
単なるテイカーとならないように気をつけて行こう
書いてて思ったけどこれ別にReactに限らず他のことにも言えそうですねyamanoku.icon